
struct d_list_lock;
typedef struct d_list_lock DListLock;
typedef int	DListLockRet;

typedef DListLockRet (* LockFunc)(DListLock *thiz);
typedef	DListLockRet (* UnLockFunc)(DListLock *thiz);
typedef void ( *DestroyFunc)(DListLock *thiz);

struct d_list_lock {
    LockFunc    lock;
    UnLockFunc	unlock;
    DestroyFunc destroy; 
    char priv[0];
};


extern  DListLock* DListLockCreate(void);
